草庐IT

python - 描述符的命名约定

全部标签

DOM 元素的 JavaScript 最佳实践命名约定

DOM元素的JavaScript命名约定是否有最佳实践或行业标准?举个例子:vartarzan=document.getElementById('foobar');要使DOM元素可以区分与另一种类型的var,最可接受的名称是什么?是不是应该……DOM_tarzanDOM泰山元素泰山....等等等等?我希望仅通过查看变量就能分辨出差异。例如,如果我看到:DOM_tarzan.remove();...我马上就知道“DOM_tarzan”是一个DOM元素,并且它使用标准的JavaScriptremove()方法。毫无疑问,“DOM_tarzan”是一个自定义对象,它具有用户定义的“remov

Javascript - 获取任何键盘布局的键描述

对于丰富的Web应用程序,我需要键盘快捷键。因为有许多不同的键盘布局,所以它们必须是可配置的。不幸的是,我想不出一种方法将键盘事件映射到人类可读的快捷方式名称,例如Ctrl+Alt+Y或Alt+\.keypress事件是无用的,因为它不会针对所有按键触发。以下是keydown事件的一些属性:charCode:仅适用于可打印字符。已弃用,根据MDNcode:有效,但忽略了键盘布局。当我按Z键时,我的德语键盘上出现了code:"KeyY"。key:有效,但根据修饰符给出不同的结果。例如Shift+3在我的键盘上生成key:"§",在大多数美式键盘上生成key:"#"。keyCode:值不唯

javascript - 命名参数和 JavaScript 中的参数对象

最近我开始通过NicholasC.Zakas的书ProfessionalJavaScriptForWebDevelopers学习JavaScript,我遇到了一些我自己无法解决的问题。正如标题所说,这就是关于JavaScript函数中的命名参数和参数对象的全部内容。例如我们有这段代码:functiondoAdd(num1,num2){arguments[1]=10;alert(arguments[0]+num2);}doAdd(10,20);书上说参数对象中的值会自动反射(reflect)在相应的命名参数中,因此num2输入值为20的函数,然后通过arguments[1]覆盖它最后得到

javascript - 如何在全局范围内使用 ES6 模块而不是命名空间?

在ES6中定义一个类时,它会在全局范围内可用,您可以使用新的ES6括号封闭来防止这种情况发生:{classCar{constructor(make){this.make=make;this.currentSpeed=25;}getSpeed(){console.log(this.make+'isgoing'+this.currentSpeed+'mph.');}}window.MYNAMESPACE.Car=Car;}我有多个js文件,每个文件都有自己的类定义,我通过MYNAMESPACE在全局范围内使这些类可用。因此从任何地方创建一辆新车看起来像:varmyCar=newMYNAME

javascript - Protractor Jasmine 描述嵌套在 it block 中的 block

首先,下面的代码似乎可以工作。但是,我还没有看到有人这样做,所以我想知道这是否合法,以及我是否遗漏了无法预料的缺点。上下文是我正在使用Protractor编写E2E测试,它使用Jasmine风格的describe/itblock。我的目标是加载一个页面并运行一堆it测试block,而不是每次都重新加载该页面(因为它很耗时)。我的构造是:describe("Homepage",function(){beforeEach(function(){browser.get("/");//loadsthepage});it('elements',function(){describe('testg

javascript - 像 jQuery 中那样的命名空间普通 JavaScript 事件

在jQuery中,当您设置一个事件时,您可以为其命名空间。这意味着(如果您愿意)您可以有多个调整窗口大小的事件,例如,并且能够单独解除绑定(bind)它们而不解除绑定(bind)该选择器上的所有事件。jQuery命名空间示例:$(window).on('scroll.myScrollNamespace,function()...我想知道如何在纯JavaScript中创建命名空间。这显然行不通:window.addEventListener('resize.myScrollNamespace',function()... 最佳答案 如

可变长度参数的 Javascript 约定

我越来越喜欢javascript开发,并希望确保我遵循流行的约定。目前我有一个库,其中包含可以传递给1个模型或多个模型进行操作的函数。鉴于一些javascript库非常流行的气候,我很好奇;我是否会通过枚举参数变量或允许其中一个参数为数组来满足我的“单项或列表”要求,从而符合“事实上的标准”?场景一:参数枚举//passingasingleentitytomyfunctionsendMail(email,recipient1);//passingmultipleentitiestomyfunctionsendMail(email,recipient1,recipient2);场景2:实

javascript - 在 JavaScript 中创建命名空间/类类型结构的最优雅方式

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我正在尝试确定一种方法,该方法将为我提供最优雅的方式来将我的代码包装在Namespace/Unit中,例如对象。例如GoogleMapsAPI的vara=Google.Maps.Foo();,我认为它看起来很干净。我希望它包含(如果这是正确的术语)jQueryNoConflict$也签名。到目前为止,我喜欢://Toplevelcontainerforsu

javascript - 在 Javascript 中,什么时候需要将命名函数分配给变量?

在BabelJS的在线REPL(http://babeljs.io/repl/)中,当我输入:leta=(x)=>x+1它将被转译为:"usestrict";vara=functiona(x){returnx+1;};这里的vara=functiona(x)对我来说有点困惑,因为vara=function(x)或functiona(x)据我了解就足够了。有没有人知道何时以及为什么需要将命名函数分配给变量? 最佳答案 这里确实有两个不同的问题:定义或表达函数的不同方式有何区别?为什么leta=(x)=>x+1以这种方式转译?为了回答(

javascript - 没有全局命名空间污染的 javascript 的 Haxe?

此题只适用于Haxe我知道haxe有一段时间了,但直到昨天才真正接触过它。出于好奇,我决定移植showdown.js,markdown.pl的javascript端口,哈克。这非常简单,它生成的javascript似乎运行良好(编辑:如果您想实际查看它,请查看here)。但是,我注意到生成的代码会在全局命名空间中转储大量内容……更糟糕的是,它通过为未声明的标识符赋值而不使用var关键字,所以它们是全局的,即使你用闭包包装整个东西。例如……if(typeofjs=='undefined')js={}...Hash=function(p){if(p===$_)return;{...EReg